/**
 * 
 */
package envios;

import org.junit.Before;
import org.junit.Test;

import exceptions.StatesException;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;

/**
 * @author Lucas Alan Silvestri.
 *
 */
public class EnvioAPagarTest extends EnviosTest {

	@Before
	public void setUp() throws Exception {
		super.setUp();
		this.setSut(new EnvioAPagar(this.getVentaAPagar()));
	}
	
	/**
	 * este test demuestra que se puede entregar un envio
	 * en proceso de envio.
	 * @throws StatesException
	 */
	@Test
	public void verificarSiSeEntregoElEnvio() throws StatesException {
		when(this.getVentaAPagar().seRealizoConExito()).thenReturn(true);
		this.getSut().enviar();
		this.getSut().entregar();
		assertEquals(true, this.getSut().estaEntregado());
		}
	
	/**
	 * este test demuestra que no se puede entregar un envio
	 * ya entregado.
	 * @throws StatesException
	 */
	@Override
	@Test
	public void verificarSiNoSeEntregoElEnvio() throws StatesException {
		when(this.getVentaAPagar().seRealizoConExito()).thenReturn(false);
		this.getSut().enviar();
		this.getSut().entregar();
		assertEquals(true, this.getSut().estaCancelado());
		}
	

}
